#include"TcpServer.hpp"
#include"Protocol.hpp"
#include"Cal_Server.hpp"
int main(int argc,char*argv[])
{
    // Request req(1,1,'+');
    // string out;
    // req.Serialize(&out);
    // out = Encode(out);
    // Request y;
    // string s;
    // if(Decode(out,&s) == false)  
    // {
    //     cout << "Decode有错误!" << endl;
       
    // }
    // if(y.Reserialize(s) == false)
    // {
    //     cout << "Reserialize有错误" << endl;
    // }
    // cout << y.x << ' ' << y.op << ' ' << y.y << endl;

    // Response resp(1000,0);
    // string content;
    // resp.Serialize(&content);
    // cout << content << endl;
    // content = Encode(content);
    // cout << content << endl;

    // string re;
    // bool r = Decode(content,&re);
    // cout << re << endl;

    // Response tmp;
    // tmp.Reserialize(re);
    // cout << tmp.code << ' ' << tmp.res << endl;
    if(argc != 2)
    {
        cout << "没有输入要绑定的端口号! ./xx.exe port" << endl;
        exit(0);
    }
    uint16_t port = stoi(argv[1]);
    ServerCal s;
    TcpServer *tsp = new TcpServer(port,std::bind(&ServerCal::Cal,&s,std::placeholders::_1));
    tsp->InitServer();
    //Daemon();
    daemon(0,0); //更改到root目录
    tsp->Start();

    return 0;
}